package be.khl.kevinvranken.breekuit.entiteiten;

import be.khl.kevinvranken.breekuit.*;
import be.khl.kevinvranken.breekuit.entiteiten.upgrades.*;

/**
 * An entity which represents one of our space invader aliens.
 * 
 * @author Kevin Vranken
 */
public class Blok extends Entiteit {

    private Spel game;
    private Upgrade upgrade = null; // sommige blokken bevatten een tof extratje
    private boolean alGeraakt = false;

    public Blok(Spel game, String ref, int x, int y) {
        super(ref, x, y);

        this.game = game;
        if (Math.random() < .10) { // 10% kans dat een blok een Upgrade heeft
            //TODO - Meerdere upgrades implementeren
            if (Math.random() < .50){
                this.upgrade = new Lijn(game, this);
            } else {
                this.upgrade = new ExtraBallen(game, this);
            }
        }

    }

    /**
     * Hier behandelen we een Collision met een bal indien de Blok een Upgrade bevat
     * Het verwijderen van de Blok handelen we af in Bal
     * @param other
     */
    public void collidedWith(Entiteit other) {
        if (other instanceof Bal && !alGeraakt && upgrade != null) {
            game.getEntiteiten().add(upgrade);
            alGeraakt = true;
        }
    }
}